Mobile computing has recently emerged as a new direction for computing architecture. With mobile computing, the human-computer interface has migrated away from traditional keyboard and mouse input devices and toward touch, audio, and video input devices. Applications developed for mobile computing may be specially designed to be compatible with the smaller displays often employed in mobile devices. Currently there is a proliferation of different kinds of mobile devices (e.g., smartphones, tablets, electronic book readers, etc.) having different hardware configurations and different operating systems. Unfortunately, applications developed for one kind of mobile device may not be compatible with another kind of mobile device.